home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1995 March / macformat-022.iso / Shareware City / Developers / MW MPW Binaries 1.1.1a2 / mwcPPC / MWCIncludes / Resources.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-01-31  |  8.1 KB  |  239 lines  |  [TEXT/MMCC]

  1. /*
  2.     File:        Resources.h
  3.  
  4.     Copyright:    © 1984-1993 by Apple Computer, Inc., all rights reserved.
  5.  
  6.     WARNING
  7.     This file was auto generated by the interfacer tool. Modifications
  8.     must be made to the master file.
  9.  
  10. */
  11.  
  12. #ifndef __RESOURCES__
  13. #define __RESOURCES__
  14.  
  15. #ifndef __TYPES__
  16. #include <Types.h>
  17. /*    #include <ConditionalMacros.h>                                */
  18. /*    #include <MixedMode.h>                                        */
  19. /*        #include <Traps.h>                                        */
  20. #endif
  21.  
  22. #ifndef __FILES__
  23. #include <Files.h>
  24. /*    #include <OSUtils.h>                                        */
  25. /*    #include <SegLoad.h>                                        */
  26. #endif
  27.  
  28. enum  {
  29.     resSysHeap                    = 64,                            /*System or application heap?*/
  30.     resPurgeable                = 32,                            /*Purgeable resource?*/
  31.     resLocked                    = 16,                            /*Load it in locked?*/
  32.     resProtected                = 8,                            /*Protected?*/
  33.     resPreload                    = 4,                            /*Load in on OpenResFile?*/
  34.     resChanged                    = 2,                            /*Resource changed?*/
  35.     mapReadOnly                    = 128,                            /*Resource file read-only*/
  36.     mapCompact                    = 64,                            /*Compact resource file*/
  37.     mapChanged                    = 32,                            /*Write map out at updat*/
  38.     kResFileNotOpened            = -1,                            /*ref num return as error when opening a resourc file*/
  39.     kSystemResFile                = 0                                /*this is the default ref num to the system file*/
  40. };
  41.  
  42.  
  43. /*
  44.     ResErrProcs cannot be written in or called from a high-level 
  45.     language without the help of mixed mode or assembly glue because they 
  46.     use the following parameter-passing convention:
  47.  
  48.     typedef pascal void (*ResErrProcPtr)(OSErr error);
  49.  
  50.         In:
  51.             =>     parameter                D0.W
  52.         Out:
  53.             none
  54. */
  55.  
  56. enum  {
  57.     uppResErrProcInfo            = kRegisterBased|REGISTER_ROUTINE_PARAMETER(1,kRegisterD0,SIZE_CODE(sizeof(OSErr)))
  58. };
  59.  
  60. #if USESROUTINEDESCRIPTORS
  61. typedef pascal void (*ResErrProcPtr)(OSErr error);
  62.  
  63. typedef UniversalProcPtr ResErrUPP;
  64.  
  65. #define CallResErrProc(userRoutine, parameter)  \
  66.     CallUniversalProc((UniversalProcPtr)(userRoutine), uppResErrProcInfo, (parameter))
  67.  
  68. #define NewResErrProc(userRoutine)  \
  69.     (ResErrUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppResErrProcInfo, GetCurrentISA())
  70.  
  71. #else
  72. typedef ProcPtr ResErrUPP;
  73.  
  74. #define NewResErrProc(userRoutine)  \
  75.     (ResErrUPP)(userRoutine)
  76.  
  77. #endif
  78.  
  79. #ifdef __cplusplus
  80. extern "C" {
  81. #endif
  82.  
  83. extern pascal short InitResources(void)
  84.  ONEWORDINLINE(0xA995);
  85. extern pascal void RsrcZoneInit(void)
  86.  ONEWORDINLINE(0xA996);
  87. extern pascal void CloseResFile(short refNum)
  88.  ONEWORDINLINE(0xA99A);
  89. extern pascal short ResError(void)
  90.  ONEWORDINLINE(0xA9AF);
  91. extern pascal short CurResFile(void)
  92.  ONEWORDINLINE(0xA994);
  93. extern pascal short HomeResFile(Handle theResource)
  94.  ONEWORDINLINE(0xA9A4);
  95. extern pascal void CreateResFile(ConstStr255Param fileName)
  96.  ONEWORDINLINE(0xA9B1);
  97. extern pascal short OpenResFile(ConstStr255Param fileName)
  98.  ONEWORDINLINE(0xA997);
  99. extern pascal void UseResFile(short refNum)
  100.  ONEWORDINLINE(0xA998);
  101. extern pascal short CountTypes(void)
  102.  ONEWORDINLINE(0xA99E);
  103. extern pascal short Count1Types(void)
  104.  ONEWORDINLINE(0xA81C);
  105. extern pascal void GetIndType(ResType *theType, short index)
  106.  ONEWORDINLINE(0xA99F);
  107. extern pascal void Get1IndType(ResType *theType, short index)
  108.  ONEWORDINLINE(0xA80F);
  109. extern pascal void SetResLoad(Boolean load)
  110.  ONEWORDINLINE(0xA99B);
  111. extern pascal short CountResources(ResType theType)
  112.  ONEWORDINLINE(0xA99C);
  113. extern pascal short Count1Resources(ResType theType)
  114.  ONEWORDINLINE(0xA80D);
  115. extern pascal Handle GetIndResource(ResType theType, short index)
  116.  ONEWORDINLINE(0xA99D);
  117. extern pascal Handle Get1IndResource(ResType theType, short index)
  118.  ONEWORDINLINE(0xA80E);
  119. extern pascal Handle GetResource(ResType theType, short theID)
  120.  ONEWORDINLINE(0xA9A0);
  121. extern pascal Handle Get1Resource(ResType theType, short theID)
  122.  ONEWORDINLINE(0xA81F);
  123. extern pascal Handle GetNamedResource(ResType theType, ConstStr255Param name)
  124.  ONEWORDINLINE(0xA9A1);
  125. extern pascal Handle Get1NamedResource(ResType theType, ConstStr255Param name)
  126.  ONEWORDINLINE(0xA820);
  127. extern pascal void LoadResource(Handle theResource)
  128.  ONEWORDINLINE(0xA9A2);
  129. extern pascal void ReleaseResource(Handle theResource)
  130.  ONEWORDINLINE(0xA9A3);
  131. extern pascal void DetachResource(Handle theResource)
  132.  ONEWORDINLINE(0xA992);
  133. extern pascal short UniqueID(ResType theType)
  134.  ONEWORDINLINE(0xA9C1);
  135. extern pascal short Unique1ID(ResType theType)
  136.  ONEWORDINLINE(0xA810);
  137. extern pascal short GetResAttrs(Handle theResource)
  138.  ONEWORDINLINE(0xA9A6);
  139. extern pascal void GetResInfo(Handle theResource, short *theID, ResType *theType, Str255 name)
  140.  ONEWORDINLINE(0xA9A8);
  141. extern pascal void SetResInfo(Handle theResource, short theID, ConstStr255Param name)
  142.  ONEWORDINLINE(0xA9A9);
  143. extern pascal void AddResource(Handle theData, ResType theType, short theID, ConstStr255Param name)
  144.  ONEWORDINLINE(0xA9AB);
  145. extern pascal long GetResourceSizeOnDisk(Handle theResource)
  146.  ONEWORDINLINE(0xA9A5);
  147. extern pascal long GetMaxResourceSize(Handle theResource)
  148.  ONEWORDINLINE(0xA821);
  149. extern pascal long RsrcMapEntry(Handle theResource)
  150.  ONEWORDINLINE(0xA9C5);
  151. extern pascal void SetResAttrs(Handle theResource, short attrs)
  152.  ONEWORDINLINE(0xA9A7);
  153. extern pascal void ChangedResource(Handle theResource)
  154.  ONEWORDINLINE(0xA9AA);
  155. extern pascal void RemoveResource(Handle theResource)
  156.  ONEWORDINLINE(0xA9AD);
  157. extern pascal void UpdateResFile(short refNum)
  158.  ONEWORDINLINE(0xA999);
  159. extern Handle getnamedresource(ResType theType, char *name);
  160. extern pascal void WriteResource(Handle theResource)
  161.  ONEWORDINLINE(0xA9B0);
  162. extern pascal void SetResPurge(Boolean install)
  163.  ONEWORDINLINE(0xA993);
  164. extern Handle get1namedresource(ResType theType, char *name);
  165. extern pascal short GetResFileAttrs(short refNum)
  166.  ONEWORDINLINE(0xA9F6);
  167. extern pascal void SetResFileAttrs(short refNum, short attrs)
  168.  ONEWORDINLINE(0xA9F7);
  169. extern pascal short OpenRFPerm(ConstStr255Param fileName, short vRefNum, char permission)
  170.  ONEWORDINLINE(0xA9C4);
  171. extern pascal Handle RGetResource(ResType theType, short theID)
  172.  ONEWORDINLINE(0xA80C);
  173. #if SystemSevenOrLater
  174. extern pascal short HOpenResFile(short vRefNum, long dirID, ConstStr255Param fileName, char permission)
  175.  ONEWORDINLINE(0xA81A);
  176. #else
  177. extern pascal short HOpenResFile(short vRefNum, long dirID, ConstStr255Param fileName, char permission);
  178. #endif
  179.  
  180. #if SystemSevenOrLater
  181. extern pascal void HCreateResFile(short vRefNum, long dirID, ConstStr255Param fileName)
  182.  ONEWORDINLINE(0xA81B);
  183. #else
  184. extern pascal void HCreateResFile(short vRefNum, long dirID, ConstStr255Param fileName);
  185. #endif
  186.  
  187. extern pascal short FSpOpenResFile(const FSSpec *spec, SignedByte permission)
  188.  THREEWORDINLINE(0x303C, 0x000D, 0xAA52);
  189. extern pascal void FSpCreateResFile(const FSSpec *spec, OSType creator, OSType fileType, ScriptCode scriptTag)
  190.  THREEWORDINLINE(0x303C, 0x000E, 0xAA52);
  191.  
  192. /*  partial resource calls  */
  193.  
  194. extern pascal void ReadPartialResource(Handle theResource, long offset, void *buffer, long count)
  195.  TWOWORDINLINE(0x7001, 0xA822);
  196. extern pascal void WritePartialResource(Handle theResource, long offset, const void *buffer, long count)
  197.  TWOWORDINLINE(0x7002, 0xA822);
  198. extern pascal void SetResourceSize(Handle theResource, long newSize)
  199.  TWOWORDINLINE(0x7003, 0xA822);
  200. extern pascal Handle GetNextFOND(Handle fondHandle)
  201.  TWOWORDINLINE(0x700A, 0xA822);
  202.  
  203. /* Use TempInsertROMMap to force the ROM resource map to be
  204.    inserted into the chain in front of the system. Note that
  205.    this call is only temporary - the modified resource chain
  206.    is only used for the next call to the resource manager.
  207.    See IM IV 19 for more information. */
  208.  
  209. #if USESCODEFRAGMENTS
  210. extern void TempInsertROMMap(Boolean tempResLoad);
  211. #else
  212. #define TempInsertROMMap(tempResLoad)  \
  213.     ((tempResLoad) ? *(unsigned short*)0x0B9E = 0xFFFF :  \
  214.     *(unsigned short*)0x0B9E = 0xFF00)
  215.  
  216. #endif
  217.  
  218. extern short openrfperm(char *fileName, short vRefNum, char permission);
  219. extern short openresfile(char *fileName);
  220. extern void createresfile(char *fileName);
  221. extern void getresinfo(Handle theResource, short *theID, ResType *theType, char *name);
  222. extern void setresinfo(Handle theResource, short theID, char *name);
  223. extern void addresource(Handle theResource, ResType theType, short theID, char *name);
  224. #if OLDROUTINENAMES
  225. #define SizeResource(theResource) GetResourceSizeOnDisk(theResource)
  226.  
  227. #define MaxSizeRsrc(theResource) GetMaxResourceSize(theResource)
  228.  
  229. #define RmveResource(theResource) RemoveResource(theResource)
  230.  
  231. #endif
  232.  
  233. #ifdef __cplusplus
  234. }
  235. #endif
  236.  
  237. #endif
  238.  
  239.